Challenge #46: Formatting a Date from an Integer ~日付の整形~ – Alteryx Weekly Challenge
こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。
Alteryx Communityで公開されているWeekly Challengeに挑戦するシリーズ。今回は日付の整形に挑戦します。
動作環境
当エントリの執筆には、以下の環境を利用しています。
- Windows 10 Pro
- Alteryx Designer 2019.1.4.57073 英語版
Challenge #46: Formatting a Date from an Integer
お題
今回挑戦するお題はこちら。
Input側のデータはこちら。初めの数字が「1」の場合は2000年代、「0」の場合は1900年代という形式で日付が用意されています。
Output側のデータはこちら。Date型に変換して出力しています。
解答
今回作成するワークフローはこちら。
まずはFormulaツールで新しい列をV_WString型で作成し、年月日を8桁の数字で出力します。
設定は以下のとおりです。
IIF(Left([date], 1) == "1", "20" + Right([date], 6), "19" + Right([date], 6))
- 「date」列の左から1文字が「1」の場合は「20」と「date」列の右から6文字を出力
- それ以外の場合は「19」と「date」列の右から6文字を出力
DateTimeツールを使用して年月日を表す8桁の数字(yyyyMMdd
)をDate型に変換します。
Selectツールを使用して、不要な列を削除します。
結果を確認して完成です。
Formulaツールのみ使用した解答
Formulaツールで関数を使用してDate型に変換することも可能です。今度はDateTimeツールを使わず、Formulaツールでワークフローを作成してみます。
Formulaツールの設定はこちら。新しく作成する列はDate型を指定しています。
IIFは先ほどと同じですが、DateTimeParseを使用してDate型に変換しています。
DateTimeParse(IIF(Left([date], 1) == "1", "20" + Right([date], 6), "19" + Right([date], 6)), "%Y%m%d")
結果を確認して完成です。
最後に
今回はChallenge #46: Formatting a Date from an Integerに挑戦しました。
サンプルワークフローのご案内
クラスメソッドでご契約のユーザー様向けに、当ブログでご紹介したワークフローを専用ポータルにて公開しております。当エントリでご紹介したワークフローも公開予定ですので、ご参考にしていただきますと幸いです。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。